package cn.exempale.mscapplication.model.db.dao;

import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Update;

import static androidx.room.OnConflictStrategy.IGNORE;
import static androidx.room.OnConflictStrategy.REPLACE;

/**
 * 包含数据库增、删、更新基本操作的简单DAO
 *
 * @param <T>
 */
@Dao
public interface BaseDAO<T> {

    /**
     * 更新方式保存
     *
     * @param t
     */
    @Insert(onConflict = REPLACE)
    void save(T... t);

    /**
     * 增量方式保存
     *
     * @param t
     */
    @Insert(onConflict = IGNORE)
    void save0(T... t);

    /**
     * 对象方式更新
     *
     * @param t
     */
    @Update
    void update(T... t);

    /**
     * 对象方式删除
     *
     * @param t
     */
    @Delete
    void delete(T... t);
}
